home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-01
/
window2.zip
/
WNDEMO.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-01-04
|
3KB
|
107 lines
#include <stdio.h>
#include <window.h>
#define HOME 0x8A /* HOME key */
#define CURLF 0x8B /* <- */
#define ENDKEY 0x8C /* END key */
#define CURRT 0x9B /* -> */
#define INSERT 0x9D /* Ins */
#define DELETE 0x9E /* Del */
/*************************************
** window.c and vlib.a functions */
WINDOWPTR draw_window();
void write_text(), clr_window(), remove_window();
void delete_row(), gotoxy(), vputc();
char kbd_ci(), kbd_csts();
int ticker();
/*********************
** desmet functions */
char csts(), ci(), co();
int isprint();
main() /* demonstration */
{
int i,j,k;
WINDOWPTR wn, wn2;
char linbuf[135];
while ( 1 )
{ for ( i=0; i<50; i++ )
{ puts("Hit ESC while this display is moving to exit. ");
brkchk ( 0 );
}
if ( (wn2 = draw_window(45, 5, 30, 10, 0x50)) == NULL)
{ puts("\n\nUnable to open window for help\n");
exit(1);
}
win_text ( wn2, " Editing keys\n ------------\n");
win_text ( wn2, "Cursor ->,<-,Home,End,^S,^D\n");
win_text ( wn2, "Erase Del,Backspace(<--),^G\n");
win_text ( wn2, "Mode Ins,^V (toggles)\n\n");
win_text ( wn2, "Done Enter\n");
if ( (wn = draw_window(10, 3, 30, 1, 0x30)) == NULL)
{ puts("\n\nUnable to open window for input\n");
exit(1);
}
win_text ( wn2, "\n\nResult may be up to 20 chars" );
win_text ( wn,"Enter new data: " );
linbuf[0] = '\0';
j = ticker(wn->uly+1,wn->ulx+1+17,linbuf,20,12,wn->wpage);
remove_window ( wn );
if ( (wn = draw_window(10, 15, 30, 1, 0x20)) == NULL)
{ puts("\n\nUnable to open window for edit\n");
exit(1);
}
win_text ( wn2, "\rResult may be up to 30 chars" );
win_text ( wn,"Edit old data: " );
j = wticker(wn,linbuf,30,31);
remove_window ( wn );
remove_window ( wn2 );
if ( j )
printf("\n\nResponse was \"%s\". ", linbuf);
else
puts("\n\nThe response was empty. ");
puts("Press any key to continue: ");
i = ci();
}
}
int brkchk(n)
int n;
{
WINDOWPTR wn;
int i;
char c;
if ( csts() == 0 )
return ( 0 );
i = ci();
if ( n && ( i != n ) )
return ( 0 );
if ( ( n == 0 ) && ( i != 27 ) )
return ( 0 );
if ( (wn = draw_window(20, 13, 25, 1, 0x40)) == NULL)
exit(1);
win_text ( wn,"\007 Enter \"Y\" to " );
if ( n )
win_text ( wn,"stop : " );
else
win_text ( wn,"exit : " );
co ( c = toupper ( ci() ) );
remove_window(wn);
if ( c != 'Y' )
return ( 0 );
if ( n )
return ( n );
exit(1);
}